package com.its.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 调度信息表
 * </p>
 *
 * @author 朱厚强
 * @since 2023年12月27日
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("bus_dispatch_info")
@ApiModel(value = "BusDispatchInfo对象", description = "调度信息表")
public class BusDispatchInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("调度信息ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty("报案号")
    @TableField("claim_reportId")
    private String claimReportId;

    @ApiModelProperty("报案号")
    @TableField(exist = false)
    private BusClaimReport claimReport;

    @ApiModelProperty("被指派人ID")
    @TableField("surveyor_id")
    private Integer surveyorId;

    @ApiModelProperty("被指派人对象")
    @TableField(exist = false)
    private WorkingPersonnel surveyor;

    @ApiModelProperty("指派人ID")
    @TableField("dispatcher_id")
    private Integer dispatcherId;

    @ApiModelProperty("指派人对象")
    @TableField(exist = false)
    private WorkingPersonnel dispatcher;

    @ApiModelProperty("指派时间")
    @TableField("assign_time")
    private LocalDateTime assignTime;

    @ApiModelProperty("备注")
    @TableField("remark")
    private String remark;

    @ApiModelProperty("指派状态：0撤销 1正常")
    @TableField("assign_status")
    private Integer assignStatus;

    @ApiModelProperty("撤销原因")
    @TableField("revoke_reason")
    private String revokeReason;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//时间格式(含有日期和时间)
    @ApiModelProperty("撤销时间")
    @TableField("revoke_time")
    private LocalDateTime revokeTime;

    @ApiModelProperty("查勘状态 ：0未查勘 1查勘中 2已查勘")
    @TableField("survery_state")
    private Integer surveryState;

    @ApiModelProperty("保单对象")
    @TableField(exist = false)
    private BusInsurancePolicy busInsurancePolicy;



}
